package org.shiro.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.shiro.entity.User;
import org.springframework.stereotype.Repository;

import java.util.List;

/** @author HKC */
@Repository
@Mapper
public interface UserMapper {
  /**
   * 删除
   *
   * @param id
   * @return
   */
  int deleteByPrimaryKey(Long id);

  /**
   * 添加
   *
   * @param record
   * @return
   */
  int insertSelective(User record);

  /**
   * 查询
   *
   * @param id
   * @return
   */
  User selectByPrimaryKey(@Param("id") Long id);

  /**
   * 更改
   *
   * @param record
   * @return
   */
  int updateByPrimaryKeySelective(User record);

  /**
   * 查询所有
   *
   * @return
   */
  List<User> selectByAll();

  /**
   * 指定行数查询
   *
   * @param offset
   * @param limit
   * @return
   */
  List<User> queryByLimit(@Param("offset") int offset, @Param("limit") int limit);

  /**
   * 名称查询
   *
   * @param username
   * @return
   */
  User selectByName(@Param("username") String username);

  /**
   * 查询用户对应的角色
   *
   * @param userId
   * @return
   */
  List<User> queryRoleByUserId(@Param("userId") Long userId);

  /**
   * 更改用户口令
   *
   * @param id
   * @param password
   * @param salt
   * @return
   */
  int changePassword(
      @Param("id") Long id, @Param("password") String password, @Param("salt") String salt);

  /**
   * 更改用户图像
   * @param url
   * @param id
   * @return
   */
    int changeImg(@Param("url") String url, @Param("id") Long id);
}
